package com.sysd.service;

import com.sysd.bean.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sysd.bean.request.LoginRequest;
import com.sysd.bean.response.UserResponse;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author bsh
 * @since 2025-06-03
 */
public interface UserService extends IService<User> {
    /**
     * 登入获取自己的信息
     *
     * @param loginRequest 登入请求
     * @return 用户信息
     */
    UserResponse toLogin(LoginRequest loginRequest);

    /**
     * 刷新过期时间
     *
     * @return res
     */
    boolean flushToken();

    /**
     * 修改用户信息
     *
     * @param user 用户信息
     * @return 修改后的用户信息
     */
    boolean updateUser(User user);

    /**
     * 注销用户
     *
     * @return res
     */
    boolean removeUser();

    /**
     * 用户注册
     *
     * @param user 用户信息
     * @return 注册后的用户信息
     */
    UserResponse registerUser(User user);

    /**
     * 关注行为
     *
     * @param userId   用户id
     * @param isFollow 是否关注
     * @return res
     */
    boolean doConcern(Integer userId, boolean isFollow);

    /**
     * 关注用户计数
     *
     * @param userId 用户id
     * @return res
     */
    Long concernCount(Integer userId);

    /**
     * 粉丝计数
     *
     * @param userId 用户id
     * @return 结果
     */
    Long fansCount(Integer userId);

    /**
     * 粉丝列表
     *
     * @param index 索引
     * @param limit 取多少
     * @return res
     */
    List<User> fansList(Integer index, Integer limit);

    /**
     * 关注列表
     *
     * @param index 索引
     * @param limit 取多少
     * @return res
     */
    List<User> concernList(Integer index, Integer limit);
}
